//
//  PreferencesBindingsViewController.m
//
//	Serial Remote for Mac - Control mac actions via serial commands
//	Copyright (C) 2010  Jeremiah McConnell
//
//	This program is free software: you can redistribute it and/or modify
//	it under the terms of the GNU General Public License as published by
//	the Free Software Foundation, either version 3 of the License, or
//	(at your option) any later version.
//
//	This program is distributed in the hope that it will be useful,
//	but WITHOUT ANY WARRANTY; without even the implied warranty of
//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//	GNU General Public License for more details.
//
//	You should have received a copy of the GNU General Public License
//	along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

#import "PreferencesBindingsViewController.h"
#import "BindingsData.h"


@implementation PreferencesBindingsViewController

@synthesize bindings;
@synthesize selectionIndexes;

#pragma mark -
#pragma mark Prefrence Pane Methods

- (NSString *)title
{
	return NSLocalizedString(@"Bindings", @"Title of 'Bindings' preference pane");
}

- (NSString *)identifier
{
	return @"PreferencesBindingsPane";
}

- (NSImage *)image
{
	return [NSImage imageNamed:@"NSAdvanced"];
	//return [NSImage imageNamed:@"NSPreferencesGeneral"];
}

#pragma mark -
#pragma mark Initialization Methods

- (void)awakeFromNib
{
	[self setBindings:[BindingsData sharedBindingsData]];
}

#pragma mark -
#pragma mark IBAction Methods

- (IBAction)addBinding:(id)sender
{
	NSMutableDictionary *item = [NSMutableDictionary dictionaryWithCapacity:2];
	[item setObject:@"New Binding" forKey:@"name"];
	[item setObject:@"Audio" forKey:@"type"];
	
	[self insertObject:item inBindingsAtIndex:0];
	[self setSelectionIndexes:[NSIndexSet indexSetWithIndex:0]];
}

- (IBAction)removeBinding:(id)sender
{
	[self removeObjectFromBindingsAtIndex:[selectionIndexes firstIndex]];
}

- (IBAction)sampleCommand:(id)sender
{
	
}

#pragma mark -
#pragma mark KVC Methods

- (NSUInteger)countOfBindings
{
	return [bindings count];
}

- (id)objectInBindingsAtIndex:(NSUInteger)index
{
	return [bindings objectAtIndex:index];
}

- (void)insertObject:(id)anObject inBindingsAtIndex:(NSUInteger)index
{
	[bindings insertObject:anObject atIndex:index];
}

- (void)removeObjectFromBindingsAtIndex:(NSUInteger)index
{
	[bindings removeObjectAtIndex:index];
}

@end
